package dominio.laberinto;

import dominio.comida.BolaPacman;
import dominio.comun.Posicion;

/**
 * @author RJC
 * @version 1.0
 * @created 16-jun-2012 11:59:26
 */
public class Casillero implements ICasillero {

	private String id;
	private Posicion posicion;
	private BolaPacman bola;
	private ICasillero casilleroAbajo;
	private ICasillero casilleroArriba;
	private ICasillero casilleroDerecha;
	private ICasillero casilleroIzquierda;

	public Casillero(String id) {
		this.id = id;
	}

	public boolean sePuedeTransitar(Posicion posDestino) {
		boolean resultado = false;
		if (casilleroAbajo!=null && casilleroAbajo.getPosicion().comparateTo(posDestino)) {
			resultado = true;
		}
		if (casilleroIzquierda!=null && casilleroIzquierda.getPosicion().comparateTo(posDestino)) {
			resultado = true;
		}
		if (casilleroDerecha!=null && casilleroDerecha.getPosicion().comparateTo(posDestino)) {
			resultado = true;
		}
		if (casilleroArriba!=null && casilleroArriba.getPosicion().comparateTo(posDestino)) {
			resultado = true;
		}

		return resultado;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public Posicion getPosicion() {
		return posicion;
	}

	public void setPosicion(Posicion posicion) {
		this.posicion = posicion;
	}

	public BolaPacman getBola() {
		return bola;
	}

	public void setBola(BolaPacman bolita) {
		this.bola = bolita;
	}

	public ICasillero getCasilleroAbajo() {
		return casilleroAbajo;
	}

	public void setCasilleroAbajo(ICasillero casilleroAbajo) {
		this.casilleroAbajo = casilleroAbajo;
	}

	public ICasillero getCasilleroArriba() {
		return casilleroArriba;
	}

	public void setCasilleroArriba(ICasillero casilleroArriba) {
		this.casilleroArriba = casilleroArriba;
	}

	public ICasillero getCasilleroDerecha() {
		return casilleroDerecha;
	}

	public void setCasilleroDerecha(ICasillero casilleroDerecha) {
		this.casilleroDerecha = casilleroDerecha;
	}

	public ICasillero getCasilleroIzquierda() {
		return casilleroIzquierda;
	}

	public void setCasilleroIzquierda(ICasillero casilleroIzquierda) {
		this.casilleroIzquierda = casilleroIzquierda;
	}

}